/**
 * 请说出下列最终的执行结果,并解释为什么
 */
var a = []
for (var i = 0; i < 10; i++) {
    console.log(i);
    a[i] = function () {
        console.log(i)
    }
}
a[1]()
/**
 * 输出: 10
 * 原因: var声明的变量i, 在全局范围都有效,所以全局只有一个变量i,每一次循环,变量i的值都会改变
 *      当调用a[6]()的时候,console.log()里面是全局的i,此时循环已完成,所以输出的是循环的最后一个数
 */